package com.globalwave.toolbox.dictcode;


import com.globalwave.common.exception.BusinessException;
import com.globalwave.toolbox.DictCode;
import com.globalwave.toolbox.DictCodeSO;
import com.vanda.data.BeanListBase;
import com.vandagroup.twpos.base.BaseBO;

/**
 * This class is the Business Process Object interface
 * 
 * @see ess.base.bo.ESSBO
 */
public class DictCodeBO extends BaseBO implements DictCodeBOInf{

	/**
	 * ��ѯ������������(����)
	 * 
	 * @param dto
	 *            ������������DTO����
	 * @return beanListBase
	 * @throws Exception
	 */
	public DictCode get(Long id) throws Exception {

	    return (DictCode) accessor.get(DictCode.class, id);

	}

	/**
	 * ��ѯ�����������ϣ��б?
	 * 
	 * @param dto
	 *            ������������DTO����
	 * @return beanListBase
	 * @throws Exception
	 */
	public BeanListBase query(DictCodeSO dto) throws Exception {
		return accessor.queryName("mainte-twpos:queryDictCode", dto);

	}

	/**
	 * ���������������
	 * 
	 * @param dto
	 *            ������������DTO����
	 * @return 1
	 * @throws Exception
	 */
	public void add(DictCode dto) throws Exception {
	    		
		//dto.setVersionID(new Timestamp(new Date().getTime())) ;
		
		accessor.insert(dto);

	}
	
	/**
	 * ɾ���ƶ��Ĳ�����������
	 * 
	 * @param ids
	 *            ID����
	 * @return 1
	 * @throws Exception
	 */
	public void delete(Long ids[]) throws Exception {
		for (int i = 0; i < ids.length; i++) {

			accessor.delete(DictCode.class, ids[i]);
		}

	}

	/**
	 * �޸Ĳ�����������
	 * 
	 * @param dto
	 * @return
	 * @throws Exception
	 */
	public void update(DictCode dto) throws Exception {
	    	    
		//dto.setVersionID(new Timestamp(new Date().getTime())) ;

	    accessor.getSession().clear() ;
		accessor.update(dto);
		
	}


	/**
	 * ����13P��������
	 * 
	 * @param dto
	 *            ������������DTO����
	 * @return 1
	 * @throws Exception
	 */
	public void addPromotion13P(DictCode dto) throws Exception {
	    		

		//����Ƿ��Ѿ�����ͬһ����
	    DictCodeSO so = new DictCodeSO() ;
	    so.setParName(dto.getParName()) ;
	    so.setParKey(dto.getParKey()) ;
	    so.setParValue(dto.getParValue()) ;
	    
	    DictCode dictCodeDTO = (DictCode)accessor.findName("mainte-twpos:queryDictCode",so);
		if(dictCodeDTO != null){
			throw new BusinessException("E05001");
		}
		accessor.insert(dto);

	}

}
